File manager - Edit - /home/autoph/public_html/projects/tickets-autohub/resources/views/layouts/update-info.blade.php
Back
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Update Information</title> <!-- Tailwind CSS v3 --> <script src="https://cdn.tailwindcss.com"></script> <!-- Iconify for Heroicons --> <script src="https://code.iconify.design/iconify-icon/1.0.7/iconify-icon.min.js"></script> <meta name="csrf-token" content="{{ csrf_token() }}"> </head> <body class="bg-gray-50"> <div class="container mx-auto px-4 py-8"> <div class="flex justify-center mb-8"> <img src="{{URL::asset('files/img/ahg_logo.png')}}" alt="AutoHub Logo" class="h-24 w-auto"> </div> <div class="max-w-4xl mx-auto bg-white rounded-xl shadow-lg p-8"> <div class="mb-8"> <div class="flex items-center gap-3 mb-4"> <iconify-icon icon="heroicons:user-circle-20-solid" class="text-3xl text-blue-600"></iconify-icon> <h1 class="text-2xl font-bold text-gray-900">Welcome to Autohub Help Desk!</h1> </div> <p class="text-gray-600 leading-relaxed"> Before proceeding with Autohub Help Desk, please review and update your profile information. </p> </div> <form action="" method="post" id="_editUserForm" novalidate> @csrf <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> <!-- Left Column --> <div class="space-y-6"> <!-- Employee ID --> <div class="relative"> <label for="_empID" class="block text-sm font-medium text-gray-700 mb-2">Employee ID</label> <input type="hidden" name="password" id="password" value="{{request('password')}}" /> <div class="relative"> <iconify-icon icon="heroicons:user-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <input type="text" name="_empID" id="_empID" value="{{request('employee_id')}}" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-all" placeholder="Enter First Name" required> </div> </div> <!-- First Name --> <div class="relative"> <label for="_fName" class="block text-sm font-medium text-gray-700 mb-2">First Name</label> <div class="relative"> <iconify-icon icon="heroicons:user-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <input type="text" name="_fName" id="_fName" value ="{{request('firstname')}}" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-all" placeholder="Enter First Name"> </div> </div> <!-- Last Name --> <div class="relative"> <label for="_lName" class="block text-sm font-medium text-gray-700 mb-2">Last Name</label> <div class="relative"> <iconify-icon icon="heroicons:user-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <input type="text" name="_lName" id="_lName" value ="{{request('lastname')}}" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-all" placeholder="Enter Last Name"> </div> </div> <!-- Email --> <div class="relative"> <label for="_email" class="block text-sm font-medium text-gray-700 mb-2">Email</label> <div class="relative"> <iconify-icon icon="heroicons:envelope-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <input type="email" name="_email" id="_email" value ="{{$email}}" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-all" placeholder="Enter Email" required> </div> </div> <!-- Viber --> <div class="relative"> <label for="_viber" class="block text-sm font-medium text-gray-700 mb-2">Contact</label> <div class="relative"> <iconify-icon icon="heroicons:phone-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <input type="number" name="_viber" id="_viber" value ="{{request('contact')}}" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-all" placeholder="Enter Viber Number" required> </div> </div> </div> <!-- Right Column --> <div class="space-y-6"> <!-- Company --> <div class="relative"> <label for="_company" class="block text-sm font-medium text-gray-700 mb-2">Company</label> <div class="relative"> <iconify-icon icon="heroicons:building-office-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <select name="_company" id="_company" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none appearance-none bg-white" required> <option value="">Select Company </option> @foreach($companies as $company) <option value="{{ $company->comp_id }}" {{ request('company_id') == $company->comp_id ? 'selected' : '' }}> {{ $company->comp_code }} - {{ $company->comp_name }} </option> @endforeach </select> </div> <span id="DeptError" class="text-sm text-red-600 hidden">Please select a company.</span> </div> <!-- Dealership --> <div class="relative"> <label for="_company" class="block text-sm font-medium text-gray-700 mb-2">Dealership</label> <div class="relative"> <iconify-icon icon="heroicons:building-office-2-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <select name="_dealership" id="_dealership" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none appearance-none bg-white" required> <option value="" >Select Dealership</option> </select> </div> <span id="DeptError" class="text-sm text-red-600 hidden">Please select a dealer.</span> </div> <div class="relative"> <label for="_department" class="block text-sm font-medium text-gray-700 mb-2">Department </label> <div class="relative"> <iconify-icon icon="heroicons:newspaper-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <select name="_department" id="_department" value="{{request('department_name')}}" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none appearance-none bg-white" required> <option value="">Select Department</option> @foreach($departments as $department) <option value="{{ $department->id }}" {{ request('deparment_id') == $department->id ? 'selected' : '' }}> {{ $department->name }} </option> @endforeach </select> </div> <span id="DeptError" class="text-sm text-red-600 hidden">Please select a dealer.</span> </div> <!-- Position --> <div class="relative"> <label for="_company" class="block text-sm font-medium text-gray-700 mb-2">Position</label> <div class="relative"> <iconify-icon icon="heroicons:identification-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <select name="_position" id="_position" value="{{request('position')}}" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none appearance-none bg-white" required> <option value="">Select position</option> @foreach($positions as $position) <option value="{{ $position->name }}" {{ request('position') == $position->name ? 'selected' : '' }}> {{$position->code}}-{{$position->name}} </option> @endforeach </select> </div> {{-- <span id="DeptError" class="text-sm text-red-600 hidden">Please select a company.</span> --}} </div> <!-- Anydesk --> {{-- <div class="relative"> <label for="_anydesk" class="block text-sm font-medium text-gray-700 mb-2">Anydesk</label> <div class="relative"> <iconify-icon icon="heroicons:computer-desktop-16-solid" class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"></iconify-icon> <input type="number" name="_anydesk" id="_anydesk" class="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-all" placeholder="Enter Anydesk Number" oninput="validateNumberInput(this)"> </div> </div> --}} </div> </div> <!-- Submit Button --> <div class="mt-8"> <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-medium py-3 px-6 rounded-lg transition-all flex items-center justify-center gap-2"> <iconify-icon icon="heroicons:check-20-solid" class="text-xl"></iconify-icon> <div id="loadingSpinner" class="hidden mr-2"> <svg class="animate-spin h-5 w-5 text-white" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8H4z"></path> </svg> </div> Update Profile </button> </div> </form> </div> </div> </body> </html> <script src="{{asset('js/jquery.js')}}"></script> <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> <script> function decodeData(encoded) { try { return JSON.parse(atob(decodeURIComponent(encoded))); // Decode and parse JSON } catch (error) { console.error("Error decoding data:", error); return null; } } // Get the encoded data from the URL const urlParams = new URLSearchParams(window.location.search); const encodedData = urlParams.get("data"); let Userdealer_id = "{{ request('dealership_id') }}" || ""; if (encodedData) { const userData = decodeData(encodedData); Userdealer_id = userData.dealership_id; if (userData) { // Populate form fields document.getElementById("_empID").value = userData.employee_id || ""; document.getElementById("_fName").value = userData.firstname || ""; document.getElementById("_lName").value = userData.lastname || ""; document.getElementById("_email").value = userData.email || ""; document.getElementById("_viber").value = userData.contact || ""; document.getElementById("_position").value = userData.position || ""; document.getElementById("_dealership_id").value = userData.dealership_id || ""; // Department Dropdown // document.getElementById("_department").value = userData.department_id || ""; // Dealer Dropdown // document.getElementById("_dealer").value = userData.dealer_code || ""; } } $("#_company").on('change', function() { const comID = $(this).val(); // Get selected company ID(s) $.ajax({ url: "/fetch-dealerships", type: "POST", data: { com_id: comID }, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, beforeSend: function() { $('#_dealership').prop('disabled', true); // Disable while loading }, success: function(result) { let $dealerDropdown = $('#_dealership'); $dealerDropdown.empty().append('<option value="" disabled selected>Select Dealer</option>'); if (result[0] && result[0].length > 0) { $.each(result[0], function(index, dealer) { $dealerDropdown.append('<option value="' + dealer.id + '">' + dealer.dealer_name + '</option>'); }); } else { $dealerDropdown.append('<option value="" disabled>No Dealers Available</option>'); } $dealerDropdown.prop('disabled', false); // Re-enable after loading }, error: function(error) { console.log(error); } }); }); function setDefaultCompany(){ const comID = $("#_company").val(); // Get selected company ID(s) $.ajax({ url: "/fetch-dealerships", type: "POST", data: { com_id: comID }, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, beforeSend: function() { $('#_dealership').prop('disabled', true); // Disable while loading }, success: function(result) { let $dealerDropdown = $('#_dealership'); $dealerDropdown.empty().append('<option value="" disabled selected>Select Dealer</option>'); if (result[0] && result[0].length > 0) { $.each(result[0], function(index, dealer) { if(dealer.id =Userdealer_id){ $dealerDropdown.append('<option value="' + dealer.id + '" selected >' + dealer.dealer_name + '</option>'); } $dealerDropdown.append('<option value="' + dealer.id + '">' + dealer.dealer_name + '</option>'); }); } else { $dealerDropdown.append('<option value="" disabled>No Dealers Available</option>'); } $dealerDropdown.prop('disabled', false); // Re-enable after loading }, error: function(error) { console.log(error); } }); } setDefaultCompany(); $("#_editUserForm").on("submit", function (e) { e.preventDefault(); // Prevent default form submission // Validate each field one by one if ($("#_empID").val().trim() === '') { alert('Employee ID is required'); $("#_empID").focus(); return; } if ($("#_fName").val().trim() === '') { alert('First Name is required'); $("#_fName").focus(); return; } // if ($("#_lName").val().trim() === '') { // alert('Last Name is required'); // $("#_lName").focus(); // return; // } if ($("#_email").val().trim() === '') { alert('Email is required'); $("#_email").focus(); return; } if ($("#_viber").val().trim() === '') { alert('Viber Number is required'); $("#_viber").focus(); return; } if ($("#_company").val().trim() === '') { alert('Company is required'); $("#_company").focus(); return; } if ($("#_dealership").val().trim() === '') { alert('Dealership is required'); $("#_dealership").focus(); return; } if ($("#_department").val().trim() === '') { alert('Department is required'); $("#_department").focus(); return; } if ($("#_position").val().trim() === '') { alert('Position is required'); $("#_position").focus(); return; } $("#loadingSpinner").removeClass("hidden"); $("#submitBtn").attr("disabled", true).addClass("opacity-50 cursor-not-allowed"); let formData = new FormData(this); $.ajax({ url: "/user-update", type: "POST", data: formData, processData: false, contentType: false, headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, success: function (response) { console.log('response',response) if (response.success) { localStorage.setItem('token', response.token); swal.fire({ icon: 'success', title: 'Redirecting', }); window.location.href = '/home'; // alert(response.message); // Show success message // location.reload(); // Reload the page if needed } else { alert(response.message); // Show error message } }, error: function (xhr) { let errors = xhr.responseJSON.errors; let errorMessage = "Error updating user:\n"; $.each(errors, function (key, value) { errorMessage += value[0] + "\n"; // Collect error messages }); alert(errorMessage); }, complete: function () { $("#loadingSpinner").addClass("hidden"); $("#submitBtn").removeAttr("disabled").removeClass("opacity-50 cursor-not-allowed"); }, }); }); </script>
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0 |
proxy
|
phpinfo
|
Settings